package com.chentf.demo2;

/**
 * @author chentengfei
 * @desc 使用泛型类
 * @date 2025-02-06 22:17:45
 */
public class MainClass {

    public static void main(String[] args) {
        // 泛型类在创建对象的时候，来指定操作的具体数据类型。
        Generic<String> stringGeneric = new Generic<>("张三");
        String key1 = stringGeneric.getKey();
        System.out.println("key1:" + key1);

        System.out.println(">>>>>>>>>>>>>>>>>");

        Generic<Integer> integerGeneric = new Generic<>(100);
        Integer key2 = integerGeneric.getKey();
        System.out.println("key2:" + key2);

        System.out.println(">>>>>>>>>>>>>>>>>");

        // 泛型类在创建对象的时候，没有指定数据类型时，将按照Object类型来操作。
        Generic generic = new Generic("李四");
        Object key3 = generic.getKey();
        System.out.println("key3:" + key3);

        // 泛型类，不支持基本的数据类型。
        // Generic<int> generic = new Generic<int>(100);

        // 同一泛型类，根据不同的数据类型创建的对象，本质上是一个类型，都是类类型。
        System.out.println(integerGeneric.getClass());
        System.out.println(stringGeneric.getClass());
        System.out.println(integerGeneric.getClass() == stringGeneric.getClass());
    }
}
